/*
 * @Author: silence
 * @Date: 2022-07-28 11:04:41
 * @LastEditors: Please set LastEditors
 * @LastEditTime: 2023-03-14 09:21:47
 * @Description: 添加接口api拦截器(处理其他情况：例如接口需要登录...)
 */
import 'package:dio/dio.dart';

class NetApiInterceptor implements Interceptor {
  // 是否需要处理参数，默认需要处理
  final bool isNeedHandler;
  NetApiInterceptor({this.isNeedHandler = true});

  /// 这里放置需要进行登录拦截的api接口
  final List apiNeedLoginList = [];

  @override
  void onError(DioError err, ErrorInterceptorHandler handler) {
    handler.next(err);
  }

  @override
  void onRequest(RequestOptions options, RequestInterceptorHandler handler) {
    // String urlPath = options.path; // 接口（不包括baseUrl）
    // 处理需要进行拦截的api接口
    // if (this.isNeedHandler) {
    //   if (apiNeedLoginList.contains(urlPath)) {
    //     if (!UserBlocTool.isLogin()) {
    //       ARoute.gotoPage(navigatorKey.currentState!.context, LoginPage());

    //       // 没有登录，可以直接返回了
    //       handler.resolve(Response(requestOptions: options), false);
    //     }
    //   }
    // }

    handler.next(options);
  }

  @override
  void onResponse(Response response, ResponseInterceptorHandler handler) {
    handler.next(response);
  }
}
